package cn.zhc.com.demo;

import android.app.Application;
import android.content.Context;
import android.support.multidex.MultiDex;

import cn.zhc.com.http.cache.UtilsHttpCache;
import cn.zhc.com.http.UtilsHttp;

/**
 * Created by zhouhongchun on 2017/8/14.
 * 作为一个通用的工具类模块使用
 * 1、网络模块
 * 2、事件总线
 * 3、基类 BaseActivity BaseFragment BaseBean
 * 4、图片加载 UtilsGlide
 * 5、UtilsXXX 工具类
 * 6、代码混淆以及gradle的常用配置
 */

public class DemoApplication extends Application{
    public static Context applicationContext;

    @Override
    public void onCreate() {
        MultiDex.install(this);
        super.onCreate();
        init();
    }

    private void init(){
        this.applicationContext = this;
        initCache();
        initHttp();
    }

    public static Context getAppContext(){
        return applicationContext;
    }

    /**
     * 初始化网络
     */
    private void initHttp(){
        UtilsHttp.initOkHttp();
    }

    /**
     * 初始化缓存
     */
    private void initCache(){
        UtilsHttpCache.initDiskLruCache(this);
    }
    /**
     * 释放一些全局的资源
     */
    private void release(){
        try {
            UtilsHttpCache.initDiskLruCache(this).close();
        }catch (Exception e){
            e.printStackTrace();
            new Throwable("DiskLruCache close 异常");
        }
    }
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
        release();
    }




}
